{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes:\n",
    " * tuned fresh and trained on toi data, with toi examples in the validation set\n",
    " * adding some of the scalar features into the vetting primry input\n",
    " * adding secondary view to the vetting primary input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/mnt/tess/astronet/checkpoints/direct_7_run_3/1/AstroCNNModelVetting_direct_20211115_142750',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/2/AstroCNNModelVetting_direct_20211115_144134',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/3/AstroCNNModelVetting_direct_20211115_145459',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/4/AstroCNNModelVetting_direct_20211115_150826',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/5/AstroCNNModelVetting_direct_20211115_152208',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/6/AstroCNNModelVetting_direct_20211115_153546',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/7/AstroCNNModelVetting_direct_20211115_154927',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/8/AstroCNNModelVetting_direct_20211115_160253',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/9/AstroCNNModelVetting_direct_20211115_161625',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_3/10/AstroCNNModelVetting_direct_20211115_162959']"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "chkpt_root = '/mnt/tess/astronet/checkpoints/direct_7_run_3'\n",
    "data_files = '/mnt/tess/astronet/tfrecords-vetting-7-toi-val/*'\n",
    "tces_file = '/mnt/tess/astronet/tces-vetting-v5-toi-val.csv'\n",
    "\n",
    "nruns = 10\n",
    "\n",
    "def load_ensemble(chkpt_root, nruns):\n",
    "    checkpts = []\n",
    "    for i in range(nruns):\n",
    "        parent = os.path.join(chkpt_root, str(i + 1))\n",
    "        if not os.path.exists(parent):\n",
    "            break\n",
    "        all_dirs = os.listdir(parent)\n",
    "        if not all_dirs:\n",
    "            break\n",
    "        d, = all_dirs\n",
    "        checkpts.append(os.path.join(parent, d))\n",
    "    return checkpts\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running model 1\n",
      "354 records\n",
      "Running model 2\n",
      "354 records\n",
      "Running model 3\n",
      "354 records\n",
      "Running model 4\n",
      "354 records\n",
      "Running model 5\n",
      "354 records\n",
      "Running model 6\n",
      "354 records\n",
      "Running model 7\n",
      "354 records\n",
      "Running model 8\n",
      "354 records\n",
      "Running model 9\n",
      "354 records\n",
      "Running model 10\n",
      "354 records\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "import os\n",
    "from astronet import predict\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "def run_predictions(path):\n",
    "    predict.FLAGS = predict.parser.parse_args([\n",
    "      '--model_dir', path,\n",
    "      '--data_files', data_files,\n",
    "      '--output_file', '',\n",
    "    ])\n",
    "\n",
    "    return predict.predict()\n",
    "\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "ensemble_preds = []\n",
    "config = None\n",
    "for i, path in enumerate(paths):\n",
    "    print(f'Running model {i + 1}')\n",
    "    preds, config = run_predictions(path)\n",
    "    ensemble_preds.append(preds.set_index('tic_id'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['disp_p', 'disp_e', 'disp_n']\n",
    "\n",
    "col_p = labels.index('disp_p')\n",
    "# thresh = 0.1579816417694639\n",
    "thresh = 0.99"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_preds_table = ensemble_preds[0].copy()\n",
    "all_preds_table['model'] = 0\n",
    "\n",
    "for i in range(len(ensemble_preds[1:])):\n",
    "    tmp = ensemble_preds[i].copy()\n",
    "    tmp['model'] = i\n",
    "    all_preds_table = all_preds_table.append(tmp)\n",
    "    \n",
    "all_preds_table.to_csv('toi_ensemble_preds.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "agg_preds = {}\n",
    "\n",
    "mean_preds = preds.groupby(['tic_id']).mean()\n",
    "\n",
    "# for tic_id in mean_preds.index:\n",
    "#     agg_preds[tic_id] = []\n",
    "\n",
    "#     row = mean_preds[mean_preds.index == tic_id]\n",
    "#     pred_v = row.values[0]\n",
    "#     if len(row.values) > 1:\n",
    "#         print(f'Warning: duplicate predictions for {tic_id}')\n",
    "#     if pred_v[col_p] >= thresh:\n",
    "#         agg_preds[tic_id].append('disp_p')\n",
    "#     else:\n",
    "#         agg_preds[tic_id].append(mean_preds.columns[np.argmax(pred_v)])\n",
    "\n",
    "for preds in ensemble_preds:\n",
    "    for tic_id in mean_preds.index:\n",
    "        if tic_id not in agg_preds:\n",
    "            agg_preds[tic_id] = []\n",
    "\n",
    "        row = preds[preds.index == tic_id]\n",
    "        pred_v = row.values[0]\n",
    "        if len(row.values) > 1:\n",
    "            print(f'Warning: duplicate predictions for {tic_id}')\n",
    "        if pred_v[col_p] >= thresh:\n",
    "            agg_preds[tic_id].append('disp_p')\n",
    "        else:\n",
    "            agg_preds[tic_id].append(preds.columns[np.argmax(pred_v)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_preds = []\n",
    "for tic_id in list(agg_preds.keys()):\n",
    "    counts = {l: 0 for l in labels}\n",
    "    for e in agg_preds[tic_id]:\n",
    "        counts[e] += 1\n",
    "    maxcount = max(counts.values())\n",
    "    counts.update({\n",
    "        'tic_id': tic_id,\n",
    "        'maxcount': maxcount,\n",
    "    })\n",
    "    final_preds.append(counts)\n",
    "    \n",
    "final_preds = pd.DataFrame(final_preds).set_index('tic_id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "tce_table = pd.read_csv(tces_file, header=0).set_index('tic_id')\n",
    "tce_labels = tce_table[labels]\n",
    "\n",
    "pl = final_preds.join(tce_labels, on='tic_id', how='left', lsuffix='_p')\n",
    "\n",
    "pl.head()\n",
    "pd.set_option('display.max_columns', None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall: 1.0\n",
      "Precision: 0.8160919540229885\n"
     ]
    }
   ],
   "source": [
    "ppos = (pl['disp_p_p'] > 0)\n",
    "pos = (pl['disp_p'] > 0)\n",
    "\n",
    "pneg = (pl['disp_p_p'] == 0)\n",
    "neg = (pl['disp_p'] == 0)\n",
    "\n",
    "print('Recall:', len(pl[ppos & pos]) / len(pl[pos]))\n",
    "print('Precision:', len(pl[ppos & pos]) / len(pl[ppos]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in pl[pos & pneg][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2234723\n",
      "23826331\n",
      "24004619\n",
      "24491836\n",
      "30275619\n",
      "74934381\n",
      "98350979\n",
      "119774374\n",
      "137778682\n",
      "149854222\n",
      "255994336\n",
      "271903247\n",
      "276645751\n",
      "276936320\n",
      "278225267\n",
      "278866211\n",
      "280095254\n",
      "304729846\n",
      "307153959\n",
      "321828403\n",
      "344978642\n",
      "365494323\n",
      "372222115\n",
      "380783252\n",
      "384068226\n",
      "384744828\n",
      "388076435\n",
      "424876542\n",
      "457138169\n",
      "469782185\n",
      "1715469662\n",
      "1715469667\n"
     ]
    }
   ],
   "source": [
    "for i in pl[neg & ppos][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_p</th>\n",
       "      <th>disp_e</th>\n",
       "      <th>disp_n</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.948069</td>\n",
       "      <td>0.051521</td>\n",
       "      <td>0.000410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.931041</td>\n",
       "      <td>0.068174</td>\n",
       "      <td>0.000785</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.973707</td>\n",
       "      <td>0.025740</td>\n",
       "      <td>0.000553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.929651</td>\n",
       "      <td>0.069356</td>\n",
       "      <td>0.000993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.926539</td>\n",
       "      <td>0.072740</td>\n",
       "      <td>0.000721</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.957866</td>\n",
       "      <td>0.040981</td>\n",
       "      <td>0.001153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.947042</td>\n",
       "      <td>0.052021</td>\n",
       "      <td>0.000936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.952752</td>\n",
       "      <td>0.046504</td>\n",
       "      <td>0.000744</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.960418</td>\n",
       "      <td>0.038698</td>\n",
       "      <td>0.000884</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.911789</td>\n",
       "      <td>0.087517</td>\n",
       "      <td>0.000694</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_p    disp_e    disp_n\n",
       "tic_id                               \n",
       "1129033  0.948069  0.051521  0.000410\n",
       "1129033  0.931041  0.068174  0.000785\n",
       "1129033  0.973707  0.025740  0.000553\n",
       "1129033  0.929651  0.069356  0.000993\n",
       "1129033  0.926539  0.072740  0.000721\n",
       "1129033  0.957866  0.040981  0.001153\n",
       "1129033  0.947042  0.052021  0.000936\n",
       "1129033  0.952752  0.046504  0.000744\n",
       "1129033  0.960418  0.038698  0.000884\n",
       "1129033  0.911789  0.087517  0.000694"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def compare(ensemble_preds, filter):\n",
    "    result = ensemble_preds[0][filter]\n",
    "    for preds in ensemble_preds[1:]:\n",
    "        result = result.append(preds[filter])\n",
    "    return result\n",
    "\n",
    "compare(ensemble_preds, preds.index == 1129033)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PR curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "tics = set(ensemble_preds[0].index.values)\n",
    "\n",
    "tic_index = {v: i for i, v in enumerate(tics)}\n",
    "\n",
    "pred_ps = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_es = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_ns = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "for i, preds in enumerate(ensemble_preds):\n",
    "    for row in preds.iterrows():\n",
    "        tic, pred_p = row[0], row[1][col_p]\n",
    "        pred_ps[i][tic_index[tic]] = pred_p\n",
    "        pred_es[i][tic_index[tic]] = row[1][labels.index('disp_e')]\n",
    "        pred_ns[i][tic_index[tic]] = row[1][labels.index('disp_n')]\n",
    "\n",
    "lbl_ps = np.zeros([len(tic_index)], dtype=np.bool)\n",
    "bad_labels = []\n",
    "for row in tce_labels.iterrows():\n",
    "    tic, lbl_p = row[0], row[1]['disp_p']\n",
    "    if tic in tic_index:\n",
    "        lbl_ps[tic_index[tic]] = (lbl_p > 0)\n",
    "    else:\n",
    "        bad_labels.append(tic)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_cond_pos = float(np.sum(lbl_ps))\n",
    "\n",
    "def pr_at_th(th):\n",
    "    pred_pos = np.any(pred_ps >= th, axis=0)\n",
    "    true_pos = pred_pos & lbl_ps\n",
    "    num_pred_pos = int(np.sum(pred_pos))\n",
    "    num_true_pos = int(np.sum(true_pos))\n",
    "    if num_pred_pos == 0:\n",
    "        return 1.0, 0.0\n",
    "    return float(num_true_pos) / float(num_pred_pos), float(num_true_pos) / float(num_cond_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.972663281221037, max R: 1.0, max P: 1.0\n",
      "100% recall at: 81%, threshold: 0.4594998807907654\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1200x740 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "ps, rs, ths = ([], [], [])\n",
    "th = np.max(pred_ps)\n",
    "while th >= 0.0:\n",
    "    p, r = pr_at_th(th)\n",
    "    if p > 0:\n",
    "        ps.append(p)\n",
    "        rs.append(r)\n",
    "    else:\n",
    "        ps.append(1.0)\n",
    "        rs.append(0.0)\n",
    "    ths.append(th)\n",
    "    th -= 0.0005\n",
    "    \n",
    "from sklearn import metrics\n",
    "\n",
    "print(f'AUC: {metrics.auc(rs, ps)}, max R: {max(rs)}, max P: {max(ps)}')\n",
    "    \n",
    "i = len(rs) - 1\n",
    "while rs[i] == 1.0:\n",
    "    i -= 1\n",
    "i += 1\n",
    "print(f'100% recall at: {int(ps[i] * 100)}%, threshold: {ths[i]}')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6, 3.7), dpi=200)\n",
    "\n",
    "ax.spines['top'].set_color('#808080')\n",
    "ax.spines['right'].set_color('#808080')\n",
    "ax.spines['left'].set_color('#808080')\n",
    "ax.spines['bottom'].set_color('#808080')\n",
    "ax.tick_params(direction='in', color='#808080')\n",
    "\n",
    "plt.grid(color='#c0c0c0', linestyle='--', linewidth=0.5)\n",
    "\n",
    "plt.ylabel('Precision', fontweight='bold')\n",
    "plt.xlabel('Recall', fontweight='bold')\n",
    "\n",
    "plt.xlim((0.0, 1.0))\n",
    "plt.ylim((0.0, 1.0))\n",
    "\n",
    "_ = plt.plot(rs, ps, marker='.')\n",
    "_ = plt.plot([0.0, 1.0], [1.0, 0.0])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
